/*
 * Heuristic.h
 *
 *  Created on: 24/apr/2013
 *      Authors: Ialenti Andrea, Marangon Fabio
 */

#ifndef HEURISTIC_H_
#define HEURISTIC_H_

#include "StatusCodes.h"
#include "Types.h"

//	This function will search the best tour using a N-N algorithm starting each time from a different node (O(n³)).
Status findBestNN_2Opt_3Opt(const Config *cfg, const Graph *g, OneTree *tour, int *swapCnt, bool use3opt, bool verbose);

//	This function implements a 2-opt algorithm to find a better tour (O(k * n²)).
Status run2Opt(const Config *cfg, const Graph *g, OneTree *tour, int *swapCnt);

#endif /* HEURISTIC_H_ */
